package hx.com;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import hx.com.entity.*;
import hx.com.utils.CardUtils;

import java.util.*;

/***********************************************************************
 * Module:  TalkPackage.java
 * Author:  Wys  2019/1/2
 * Purpose: Creative Manue
 ***********************************************************************/
public class MobileMain {




    public static void main(String[] args) {

         CardUtils cardUtils=new CardUtils();
         cardUtils.getCards();

        //一级菜单（主菜单）
        fristloop:
        while (true) {
            System.out.println("*****************欢迎使用嗖嗖移动业务大厅**********************");
            System.out.println("1、用户登录" + "\t" + "2、用户注册" + "\t" + "3、使用搜搜" + "\t" + "4、话费充值" + "\t" + "5、资费说明" + "\t" + "6、退出");
            System.out.println("请选择：");
            int a = setInput();
            if (a == 6) {
                System.out.println("欢迎再次使用!");
                break;
            }

            switch (a) {
                case 1:
                    cardUtils.showCards();
                    System.out.println("请输入手机号：");
                    String phoneNumber = setImport();
                    System.out.println("请输入登陆密码：");
                    String key = setImport();
                    //二级菜单（用户菜单）
                    sacendloop1:
                    while (true) {
                        if (cardUtils.isExists(phoneNumber, key)) {
                            System.out.println("*****************用户菜单**********************");
                            System.out.println("1、本月账单查询" + "\n" + "2、套餐余量查询" + "\n" + "3、打印账单" + "\n" + "4、套餐变更" + "\n" + "5、办理退网");
                            System.out.println("请选择：");
                            int b = setInput();
                            switch (b) {
                                case 1:
                                    System.out.println("---------本月账单查询---------");
                                    System.out.println("卡号："+phoneNumber);
                                    System.out.println("当月账单：");
                                    cardUtils.payCheek(phoneNumber);


                                    continue sacendloop1;
                                case 2:
                                    System.out.println("--------套餐余量查询---------");
                                    System.out.println("卡号："+phoneNumber);
                                    System.out.println("套餐内余量：");
                                    cardUtils.showRemainDetail(phoneNumber);
                                    continue sacendloop1;
                                case 3:
                                    //System.out.println("--------"+phoneNumber+"消费记录"+"--------");
                                    cardUtils.printConsumInfo(phoneNumber);
                                    continue sacendloop1;
                                case 4:
                                    System.out.println("套餐变更");
                                    continue sacendloop1;
                                case 5:
                                    System.out.println("办理退网");
                                    cardUtils.deleteCard(phoneNumber);
                                    System.out.println("用户："+phoneNumber+"退网成功");
                                    continue sacendloop1;

                            }

                        }
                        else System.out.println("请重新输入！");
                        break;
                    }
                    break;
                case 2:
                    System.out.println("*****************开户菜单**********************");
                    MobileCard mobileCard=new MobileCard();
                    String[] numbers=new String[13];
                    for(int i=1;i<10;i++){
                        numbers[i]=CardUtils.createCardNumber();
                        System.out.println(i+"、"+CardUtils.createCardNumber());
                    }
                    //缺少重复电话出现的方法
                    System.out.println("请选择卡号（输入1-9的序号）：");
                    int b=setInput();//电话号
                    mobileCard.setCardNubmber(numbers[b]);
                    System.out.println("1、话痨套餐"+"2、网虫套餐"+"3、超人套餐");
                    System.out.println("请选择套餐（输入序号）");
                    int c=setInput();//套餐号
                    if(c==1){
                        TalkPackage talkPackage=new TalkPackage();
                        mobileCard.setScrPakage(talkPackage);

                    }else if(c==2){
                        NetPackage netPackage=new NetPackage();
                        mobileCard.setScrPakage(netPackage);

                    }else {
                        SuperPackage superPackage=new SuperPackage();
                        mobileCard.setScrPakage(superPackage);

                    }
                    System.out.println("请输入名字：");
                    String name=setImport();
                    mobileCard.setUserName(name);
                    System.out.println("请输入密码：");
                    String keyWord=setImport();
                    mobileCard.setPassWord(keyWord);
                    System.out.println("请输入预存话费：");
                    String m=setImport();
                    double money=Double.valueOf(m);
                    if(money<mobileCard.getScrPakage().getPrice())
                        System.out.println("预存话费不足支付本月套餐资费，请重新充值");
                   else {
                        mobileCard.setMoney(money);
                        System.out.println("注册成功！");
                        System.out.println("卡号："+mobileCard.getCardNubmber());
                        System.out.println("用户名："+mobileCard.getUserName());
                        System.out.println("登陆密码："+mobileCard.getPassWord());
                        System.out.println("当前余额："+(mobileCard.getMoney()-mobileCard.getScrPakage().getPrice()));
                        //这里缺套餐信息和添加新卡信息到数据库（集合列表）
                        cardUtils.addCard(mobileCard.getCardNubmber(),mobileCard);
                        cardUtils.saveCards();
                        ConsumInfo consumInfo=new ConsumInfo();
                        cardUtils.saveconsumInofs();
                        cardUtils.getConsumInfos();
                        mobileCard.getScrPakage().show();

                    }

                    break;
                case 3:
                    System.out.println("*****************使用菜单**********************");
                    System.out.println("using soso");
                    break;
                case 4:
                    System.out.println("*****************充值菜单**********************");
                    System.out.println("tel fee charging");
                    break;
                case 5:
                    System.out.println("*****************资费说明**********************");
                    System.out.println("inquiry");
                    break;
               /* case 6:
                    System.out.println("欢迎再次使用!");
                    break;*/

            }

        }
        }

    private static String  setImport() {
        //字符串输入
        Scanner sc=new Scanner(System.in);
        String a=sc.next();
        return a;
    }

    private static int  setInput() {
        //数字输入
        Scanner scanner=new Scanner(System.in);
      int a=0;
        try {    a=scanner.nextInt();
            if(a==0||a>9){
                System.out.println("请重新输入：");
                setInput();
            }
        } catch (Exception e) {
            //e.printStackTrace();
            System.out.println("请重新输入：");
            setInput();
        }
        return a;
    }
}

